/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ufps.cuatro.modelo.representacion.componente;

import com.ufps.cuatro.modelo.representacion.PlantillaCombo;
import com.ufps.cuatro.modelo.representacion.PlantillaComponente;
import com.ufps.cuatro.util.base.ObjectBase;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 *
 * @author Catc
 */
public class DistribuidorIndividual extends ObjectBase implements Map<Componente, HashMap<PlantillaCombo, PlantillaComponente>>{        
    
    private HashMap<PlantillaCombo, PlantillaComponente> objDistribucionesIniciales;    
    private HashMap<Componente, HashMap<PlantillaCombo, PlantillaComponente>> objDistribuciones;

    public DistribuidorIndividual() {
        objDistribuciones = new HashMap<Componente, HashMap<PlantillaCombo, PlantillaComponente>>();
    }
    
    public HashMap<PlantillaCombo, PlantillaComponente> addDistribucion(Componente objComponente, PlantillaCombo objPlantillaCombo, PlantillaComponente objPlantillaComponente){
        HashMap<PlantillaCombo, PlantillaComponente> objDistribucionEnComponente;
        if(containsKey(objComponente)){
            objDistribucionEnComponente = this.get(objComponente);
        }
        objDistribucionEnComponente = new HashMap<PlantillaCombo, PlantillaComponente>();
        objDistribucionEnComponente.put(objPlantillaCombo, objPlantillaComponente);
        return put(objComponente, objDistribucionEnComponente);
    }

    public HashMap<Componente, HashMap<PlantillaCombo, PlantillaComponente>> getObjDistribuciones() {
        try{
        return objDistribuciones;
        }catch(java.lang.NullPointerException ex){}
        return null;
    }

    public void setObjDistribuciones(HashMap<Componente, HashMap<PlantillaCombo, PlantillaComponente>> objDistribuciones) {
        this.objDistribuciones = objDistribuciones;
    }

    public HashMap<PlantillaCombo, PlantillaComponente> getObjDistribucionesIniciales() {
       try{
        return objDistribucionesIniciales;
        }catch(java.lang.NullPointerException ex){}
       return null;
    }

    public void setObjDistribucionesIniciales(HashMap<PlantillaCombo, PlantillaComponente> objDistribucionesIniciales) {
        this.objDistribucionesIniciales = objDistribucionesIniciales;
    }    
    
    public int size() {
        try{
        return objDistribuciones.size();
        }catch(java.lang.NullPointerException ex){}
        return 0;
    }

    public boolean isEmpty() {
        return objDistribuciones.isEmpty();
    }

    public boolean containsKey(Object key) {
       try{
        return objDistribuciones.containsKey(key);
    }catch(java.lang.NullPointerException ex){}
       return false;
    }

    public boolean containsValue(Object value) {
        try{
        return objDistribuciones.containsValue(value);
    }catch(java.lang.NullPointerException ex){}
        return false;
    }

    public HashMap<PlantillaCombo, PlantillaComponente> get(Object key) {
       try{
        return objDistribuciones.get(key);
    }catch(java.lang.NullPointerException ex){}
       return null;
    }

    public HashMap<PlantillaCombo, PlantillaComponente> put(Componente key, HashMap<PlantillaCombo, PlantillaComponente> value) {
       try{
        return objDistribuciones.put(key, value);
        }catch(java.lang.NullPointerException ex){}
       return null;
    }

    public HashMap<PlantillaCombo, PlantillaComponente> remove(Object key) {
       try{
        return objDistribuciones.remove(key);
        }catch(java.lang.NullPointerException ex){}
       return null;
    }

    public void putAll(Map<? extends Componente, ? extends HashMap<PlantillaCombo, PlantillaComponente>> m) {
       try{
        objDistribuciones.putAll(m);
        }catch(java.lang.NullPointerException ex){}
       
    }

    public void clear() {
        objDistribuciones.clear();
    }

    public Set<Componente> keySet() {
       try{
        return objDistribuciones.keySet();
        }catch(java.lang.NullPointerException ex){}
       return null;
    }

    public Collection<HashMap<PlantillaCombo, PlantillaComponente>> values() {
      try{
        return objDistribuciones.values();
        }catch(java.lang.NullPointerException ex){}
      return null;
    }

    public Set<Entry<Componente, HashMap<PlantillaCombo, PlantillaComponente>>> entrySet() {
       try{
        return objDistribuciones.entrySet();
        }catch(java.lang.NullPointerException ex){}
       return null;
    }

    
    
}
